/**
 * 错误处理工具函数
 * @param {Error} error - 错误对象
 * @returns {string} 用户友好的错误信息
 */
function handleError(error) {
  console.error('API错误:', error)
  
  if (error.message) {
    return error.message
  }
  
  if (error.type === 'network') {
    return '网络连接失败，请检查网络设置'
  }
  
  if (error.type === 'config') {
    return '请求配置错误，请稍后重试'
  }
  
  if (error.status) {
    switch (error.status) {
      case 400:
        return '请求参数错误'
      case 401:
        return '未授权，请重新登录'
      case 403:
        return '权限不足'
      case 404:
        return '请求的资源不存在'
      case 500:
        return '服务器内部错误'
      default:
        return `请求失败 (${error.status})`
    }
  }
  
  return '操作失败，请稍后重试'
}

/**
 * 检查网络连接状态
 * @returns {Promise<boolean>} 网络是否可用
 */
function checkNetworkStatus() {
  return new Promise((resolve) => {
    wx.getNetworkType({
      success: (res) => {
        const networkType = res.networkType
        if (networkType === 'none') {
          resolve(false)
        } else {
          resolve(true)
        }
      },
      fail: () => {
        resolve(false)
      }
    })
  })
}

/**
 * 显示网络错误提示
 */
function showNetworkError() {
  wx.showToast({
    title: '网络连接失败',
    icon: 'none',
    duration: 2000
  })
}

/**
 * 显示API错误提示
 * @param {string} message - 错误信息
 */
function showApiError(message) {
  wx.showToast({
    title: message,
    icon: 'none',
    duration: 2000
  })
}

/**
 * 显示成功提示
 * @param {string} message - 成功信息
 */
function showSuccess(message) {
  wx.showToast({
    title: message,
    icon: 'success',
    duration: 1500
  })
}

module.exports = {
  handleError,
  checkNetworkStatus,
  showNetworkError,
  showApiError,
  showSuccess
}
